package com.itheima.algorithm.binarytree;

import java.util.LinkedList;
import java.util.Queue;

/**
 * @author: TylerZhong
 * @description: 二叉树最大深度 - 使用层序遍历
 */
public class E06Leetcode111_2 {

    /**
     * 思路：
     *  1. 使用层序遍历，层数即最大深度
     * @param root
     * @return
     */
    public static int minDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        int d1 = minDepth(root.left); // 1
        int d2 = minDepth(root.right); // 0
        if (d1 == 0) { // 当右子树为 null
            return d2+1; // 返回左子树深度 + 1
        }
        if (d2 == 0) { // 当左子树为 null
            return d1+1; // 返回右子树深度 + 1
        }
        return Integer.min(d1, d2) + 1;
    }
}
